package com.google.code.memoriesalbum.model;

import java.io.Serializable;
import java.util.Date;

import org.slim3.datastore.Attribute;
import org.slim3.datastore.Model;

import com.google.appengine.api.datastore.Key;
import com.google.gdata.data.photos.AlbumEntry;

/**
 * {@link AlbumEntry}に関する情報を保持するModel.
 * <p>Keyのname値にalbumIdを使用する。</p>
 * @author shin1ogawa
 */
@Model
public class PicasaAlbum implements Serializable {

	private static final long serialVersionUID = -1106167905521408384L;

	@Attribute(primaryKey = true)
	private Key key;

	private Key accountKey;

	private String title;

	private String description;

	private Long schemaVersion = 1L;

	/** albumの最終更新日. <p>Datastore的な操作の日付とは関係が無い。</p> */
	private Date date;


	/**
	 * @return the key
	 * @category accessor
	 */
	public Key getKey() {
		return key;
	}

	/**
	 * @param key the key to set
	 * @category accessor
	 */
	public void setKey(Key key) {
		this.key = key;
	}

	/**
	 * @return the title
	 * @category accessor
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * @param title the title to set
	 * @category accessor
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * @return the comment
	 * @category accessor
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * @param comment the comment to set
	 * @category accessor
	 */
	public void setDescription(String comment) {
		this.description = comment;
	}

	/**
	 * @param schemaVersion the schemaVersion to set
	 * @category accessor
	 */
	public void setSchemaVersion(Long schemaVersion) {
		this.schemaVersion = schemaVersion;
	}

	/**
	 * @return the schemaVersion
	 * @category accessor
	 */
	public Long getSchemaVersion() {
		return schemaVersion;
	}

	/**
	 * @param accountKey the accountKey to set
	 * @category accessor
	 */
	public void setAccountKey(Key accountKey) {
		this.accountKey = accountKey;
	}

	/**
	 * @return the accountKey
	 * @category accessor
	 */
	public Key getAccountKey() {
		return accountKey;
	}

	/**
	 * @param date the date to set
	 * @category accessor
	 */
	public void setDate(Date date) {
		this.date = date;
	}

	/**
	 * @return the date
	 * @category accessor
	 */
	public Date getDate() {
		return date;
	}
}
